#ifndef __GfxDriver_WGL_VertexInput_h__
#define __GfxDriver_WGL_VertexInput_h__

#include "GfxDriver/VertexInput.h"
#include "GfxDriver/WGL/GLInclude.h"

#include <vector>

namespace Orca {

	class GfxDriver;

	//--------------------------------------------------------------------------
	class WGLVertexInput : public AbstractVertexInput {

	public:
		static WGLVertexInput* create(GfxDriver *gfxDriver);

		WGLVertexInput(GfxDriver *gfxDriver);
		virtual ~WGLVertexInput();

		virtual void bind();

	private:
		GfxDriver *mGfxDriver;

		void _bindVertexElement(
			  const VertexElement &elem
			, VertexStreamDecl &decl);

		GLint _getVertexElementDataSize(const VertexElement &elem);
		GLenum _getVertexElementDataType(const VertexElement &elem);
	};

}

#endif	// __GfxDriver_WGL_VertexInput_h__